package org.sam.swing.table;

import java.util.EventObject;

/**
 * 当tablemodel属性发生改变的时间封装对象
 * 
 * @author sam
 *
 */
public class TableModelStateEventObject extends EventObject {

	/**
	 * 当tablemodel属性发生改变的时间封装对象
	 * 
	 * @param source
	 */
	public TableModelStateEventObject(JSTableModel<?> source) {
		super(source);
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 6569066125839803666L;

	/**
	 * 当前事件类型
	 */
	private States state;

	/**
	 * 变更的state属性
	 * 
	 * @return
	 */
	public States getState() {
		return state;
	}

	/**
	 * 变更的state属性
	 * 
	 * @param state
	 */
	public void setState(States state) {
		this.state = state;
	}

	/**
	 * 变更之前的值
	 */
	private Object preValue;

	/**
	 * 变更之后的值
	 */
	private Object afterValue;

	/**
	 * 变更之前的值
	 * 
	 * @return
	 */
	public Object getPreValue() {
		return preValue;
	}

	/**
	 * 变更之前的值
	 * 
	 * @param preValue
	 */
	public void setPreValue(Object preValue) {
		this.preValue = preValue;
	}

	/**
	 * 变更之后的值
	 * 
	 * @return
	 */
	public Object getAfterValue() {
		return afterValue;
	}

	/**
	 * 变更之后的值
	 * 
	 * @param afterValue
	 */
	public void setAfterValue(Object afterValue) {
		this.afterValue = afterValue;
	}

	public enum States {

		/**
		 * 可编辑属性
		 */
		EDITABLE,

		/**
		 * 开始执行进度
		 */
		ONPROCESS,

		/**
		 * 结束执行进度
		 */
		ENDPROCESS
	}
}
